/*
 * Writer.h
 *
 *  Created on: 19/04/2011
 *      Author: pablo
 */

#ifndef WRITER_H_
#define WRITER_H_

#include <string.h>

#include "FileLocker.h"

using namespace std;

class Writer {
public:
	Writer(char* path);
	virtual ~Writer();
	/**
	 * Escribe una linea en el archivo.
	 * pid: PID del proceso en formato string.
	 * name: Alias / nickname del cliente.
	 * line: Texto ingresado por el cliente.
	 */
	void write(string sPID, string name, string message);
	string getWelcomeMessage();
	string getGoodbyeMessage();


private:
	FileLocker* fileLocker;
	string goodbyeMessage;
	string welcomeMessage;
	/**
	 * Establece el formato de la linea a escribir en el archivo.
	 * Se usa cuando el usuario ingresa una nueva linea en la conversacion.
	 */
	string formatMessage(string pid, string name, string line);
};

#endif /* WRITER_H_ */
